#ifndef CHOOSEFRIENDDIALOG_H
#define CHOOSEFRIENDDIALOG_H

#pragma once

#include"debug.h"
#include <QDialog>
#include<QHBoxLayout>
#include<QScrollArea>
#include<QScrollBar>
#include<QCheckBox.h>
#include<QPushButton>
#include<QLabel>
#include<QPainter>

/////////////////////////////
///选择好友界面
/////////////////////////////
class ChooseFriendDialog : public QDialog
{
    Q_OBJECT
public:
    ChooseFriendDialog(const QString& userId, QWidget* parent = nullptr);

    void addFriend(const QString& userId, const QIcon avatar, const QString&name, bool checked = false);
    void addSelectedFriend(const QString& userId, const QIcon avatar, const QString& name);
    void deleteSelectedFriend(const QString& userId);
private:
    // 保存左侧待选中好友列表的 container
    QWidget* totalContainer;
    // 保存右侧已选中好友列表的 container
    QWidget* selectedContainer;
    // 保存弹出当前窗⼝的好友是哪个
    QString userId;
    void initLeft(QHBoxLayout* layout);
    void initRight(QHBoxLayout* layout);

    //确认选择
    void clickOkBtn();

    //获取成员列表
    QList<QString> getNumberList();
};


/////////////////////////////
///选择好友界面中的元素
/////////////////////////////
class ChooseFriendItem : public QWidget{
    Q_OBJECT
public:

    ChooseFriendItem(ChooseFriendDialog* owner, const QString& userId,
                     const QIcon& avatar, const QString& name, bool checked = false);

    // 此处为了设置背景⾊, 采取⼿绘的⽅式.
    void enterEvent(QEnterEvent *event) override;
    void leaveEvent(QEvent *event) override;
    void paintEvent(QPaintEvent *event) override;

    QCheckBox* checkBox;
    // 该对象的持有者
    ChooseFriendDialog* owner;
    QString userId;
    QIcon avatar;
    QString name;
    bool isHover;
private slots:
    void toggleCheckBox(bool checked);
};

#endif // CHOOSEFRIENDDIALOG_H
